/*
 * flowplayer.js 3.2.12. The Flowplayer API
 *
 * Copyright 2009-2011 Flowplayer Oy
 *
 * This file is part of Flowplayer.
 *
 * Flowplayer is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 *
 * Flowplayer is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with Flowplayer.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Date: ${date}
 * Revision: ${revision}
 */
!function() {
  function h(p) {
    console.log("$f.fireEvent", [].slice.call(p))
  }
  function l(r) {
    if (!r || typeof r != "object") {
      return r
    }
    var p = new r.constructor();
    for (var q in r) {
      if (r.hasOwnProperty(q)) {
        p[q] = l(r[q])
      }
    }
    return p
  }
  function n(u, r) {
    if (!u) {
      return
    }
    var p, q = 0, s = u.length;
    if (s === undefined) {
      for (p in u) {
        if (r.call(u[p], p, u[p]) === false) {
          break
        }
      }
    } else {
      for (var t = u[0]; q < s && r.call(t, q, t) !== false; t = u[++q]) {
      }
    }
    return u
  }
  function c(p) {
    return document.getElementById(p)
  }
  function j(r, q, p) {
    if (typeof q != "object") {
      return r
    }
    if (r && q) {
      n(q, function(s, t) {
        if (!p || typeof t != "function") {
          r[s] = t
        }
      })
    }
    return r
  }
  function o(t) {
    var r = t.indexOf(".");
    if (r != -1) {
      var q = t.slice(0, r) || "*";
      var p = t.slice(r + 1, t.length);
      var s = [];
      n(document.getElementsByTagName(q), function() {
        if (this.className && this.className.indexOf(p) != -1) {
          s.push(this)
        }
      });
      return s
    }
  }
  function g(p) {
    p = p || window.event;
    if (p.preventDefault) {
      p.stopPropagation();
      p.preventDefault()
    } else {
      p.returnValue = false;
      p.cancelBubble = true
    }
    return false
  }
  function k(r, p, q) {
    r[p] = r[p] || [];
    r[p].push(q)
  }
  function e(p) {
    return p.replace(/&amp;/g, "%26").replace(/&/g, "%26").replace(/=/g, "%3D")
  }
  function f() {
    return"_" + ("" + Math.random()).slice(2, 10)
  }
  var i = function(u, s, t) {
    var r = this, q = {}, v = {};

    r.index = s;
    if (typeof u == "string") {
      u = {
        url: u
      }
    }
    j(this, u, true);
    n(("Begin*,Start,Pause*,Resume*,Seek*,Stop*,Finish*,LastSecond,Update,BufferFull,BufferEmpty,BufferStop").split(","), function() {
      var w = "on" + this;
      if (w.indexOf("*") != -1) {
        w = w.slice(0, w.length - 1);
        var x = "onBefore" + w.slice(2);
        r[x] = function(y) {
          k(v, x, y);
          return r
        }
      }
      r[w] = function(y) {
        k(v, w, y);
        return r
      };

      if (s == -1) {
        if (r[x]) {
          t[x] = r[x]
        }
        if (r[w]) {
          t[w] = r[w]
        }
      }
    });
    j(this, {
      onCuepoint: function(y, x) {
        if (arguments.length == 1) {
          q.embedded = [null, y];
          return r
        }
        if (typeof y == "number") {
          y = [y]
        }
        var w = f();
        q[w] = [y, x];
        if (t.isLoaded()) {
          t._api().fp_addCuepoints(y, s, w)
        }
        return r
      },
      update: function(x) {
        j(r, x);
        if (t.isLoaded()) {
          t._api().fp_updateClip(x, s)
        }
        var w = t.getConfig();
        var y = (s == -1) ? w.clip : w.playlist[s];
        j(y, x, true)
      },
      _fireEvent: function(w, z, x, B) {
        if (w == "onLoad") {
          n(q, function(C, D) {
            if (D[0]) {
              t._api().fp_addCuepoints(D[0], s, C)
            }
          });
          return false
        }
        B = B || r;
        if (w == "onCuepoint") {
          var A = q[z];
          if (A) {
            return A[1].call(t, B, x)
          }
        }
        if (z && "onBeforeBegin,onMetaData,onStart,onUpdate,onResume".indexOf(w) != -1) {
          j(B, z);
          if (z.metaData) {
            if (!B.duration) {
              B.duration = z.metaData.duration
            } else {
              B.fullDuration = z.metaData.duration
            }
          }
        }
        var y = true;
        n(v[w], function() {
          y = this.call(t, B, z, x)
        });
        return y
      }
    });
    if (u.onCuepoint) {
      var p = u.onCuepoint;
      r.onCuepoint.apply(r, typeof p == "function" ? [p] : p);
      delete u.onCuepoint
    }
    n(u, function(w, x) {
      if (typeof x == "function") {
        k(v, w, x);
        delete u[w]
      }
    });
    if (s == -1) {
      t.onCuepoint = this.onCuepoint
    }
  };

  var m = function(q, s, r, u) {
    var p = this, t = {}, v = false;
    if (u) {
      j(t, u)
    }
    n(s, function(w, x) {
      if (typeof x == "function") {
        t[w] = x;
        delete s[w]
      }
    });
    j(this, {
      animate: function(z, A, y) {
        if (!z) {
          return p
        }
        if (typeof A == "function") {
          y = A;
          A = 500
        }
        if (typeof z == "string") {
          var x = z;
          z = {};

          z[x] = A;
          A = 500
        }
        if (y) {
          var w = f();
          t[w] = y
        }
        if (A === undefined) {
          A = 500
        }
        s = r._api().fp_animate(q, z, A, w);
        return p
      },
      css: function(x, y) {
        if (y !== undefined) {
          var w = {};

          w[x] = y;
          x = w
        }
        s = r._api().fp_css(q, x);
        j(p, s);
        return p
      },
      show: function() {
        this.display = "block";
        r._api().fp_showPlugin(q);
        return p
      },
      hide: function() {
        this.display = "none";
        r._api().fp_hidePlugin(q);
        return p
      },
      toggle: function() {
        this.display = r._api().fp_togglePlugin(q);
        return p
      },
      fadeTo: function(z, y, x) {
        if (typeof y == "function") {
          x = y;
          y = 500
        }
        if (x) {
          var w = f();
          t[w] = x
        }
        this.display = r._api().fp_fadeTo(q, z, y, w);
        this.opacity = z;
        return p
      },
      fadeIn: function(x, w) {
        return p.fadeTo(1, x, w)
      },
      fadeOut: function(x, w) {
        return p.fadeTo(0, x, w)
      },
      getName: function() {
        return q
      },
      getPlayer: function() {
        return r
      },
      _fireEvent: function(x, w, y) {
        if (x == "onUpdate") {
          var A = r._api().fp_getPlugin(q);
          if (!A) {
            return
          }
          j(p, A);
          delete p.methods;
          if (!v) {
            n(A.methods, function() {
              var C = "" + this;
              p[C] = function() {
                var D = [].slice.call(arguments);
                var E = r._api().fp_invoke(q, C, D);
                return E === "undefined" || E === undefined ? p : E
              }
            });
            v = true
          }
        }
        var B = t[x];
        if (B) {
          var z = B.apply(p, w);
          if (x.slice(0, 1) == "_") {
            delete t[x]
          }
          return z
        }
        return p
      }
    })
  };

  function b(r, H, u) {
    var x = this, w = null, E = false, v, t, G = [], z = {}, y = {}, F, s, q, D, p, B;
    j(x, {
      id: function() {
        return F
      },
      isLoaded: function() {
        return(w !== null && w.fp_play !== undefined && !E)
      },
      getParent: function() {
        return r
      },
      hide: function(I) {
        if (I) {
          r.style.height = "0px"
        }
        if (x.isLoaded()) {
          w.style.height = "0px"
        }
        return x
      },
      show: function() {
        r.style.height = B + "px";
        if (x.isLoaded()) {
          w.style.height = p + "px"
        }
        return x
      },
      isHidden: function() {
        return x.isLoaded() && parseInt(w.style.height, 10) === 0
      },
      load: function(K) {
        if (!x.isLoaded() && x._fireEvent("onBeforeLoad") !== false) {
          var I = function() {
            if (v && !flashembed.isSupported(H.version)) {
              r.innerHTML = ""
            }
            if (K) {
              K.cached = true;
              k(y, "onLoad", K)
            }
            flashembed(r, H, {
              config: u
            })
          };

          var J = 0;
          n(a, function() {
            this.unload(function(L) {
              if (++J == a.length) {
                I()
              }
            })
          })
        }
        return x
      },
      unload: function(K) {
        if (v.replace(/\s/g, "") !== "") {
          if (x._fireEvent("onBeforeUnload") === false) {
            if (K) {
              K(false)
            }
            return x
          }
          E = true;
          try {
            if (w) {
              if (w.fp_isFullscreen()) {
                w.fp_toggleFullscreen()
              }
              w.fp_close();
              x._fireEvent("onUnload")
            }
          } catch (I) {
          }
          var J = function() {
            w = null;
            r.innerHTML = v;
            E = false;
            if (K) {
              K(true)
            }
          };

          if (/WebKit/i.test(navigator.userAgent) && !/Chrome/i.test(navigator.userAgent)) {
            setTimeout(J, 0)
          } else {
            J()
          }
        } else {
          if (K) {
            K(false)
          }
        }
        return x
      },
      getClip: function(I) {
        if (I === undefined) {
          I = D
        }
        return G[I]
      },
      getCommonClip: function() {
        return t
      },
      getPlaylist: function() {
        return G
      },
      getPlugin: function(I) {
        var K = z[I];
        if (!K && x.isLoaded()) {
          var J = x._api().fp_getPlugin(I);
          if (J) {
            K = new m(I, J, x);
            z[I] = K
          }
        }
        return K
      },
      getScreen: function() {
        return x.getPlugin("screen")
      },
      getControls: function() {
        return x.getPlugin("controls")._fireEvent("onUpdate")
      },
      getLogo: function() {
        try {
          return x.getPlugin("logo")._fireEvent("onUpdate")
        } catch (I) {
        }
      },
      getPlay: function() {
        return x.getPlugin("play")._fireEvent("onUpdate")
      },
      getConfig: function(I) {
        return I ? l(u) : u
      },
      getFlashParams: function() {
        return H
      },
      loadPlugin: function(L, K, N, M) {
        if (typeof N == "function") {
          M = N;
          N = {}
        }
        var J = M ? f() : "_";
        x._api().fp_loadPlugin(L, K, N, J);
        var I = {};

        I[J] = M;
        var O = new m(L, null, x, I);
        z[L] = O;
        return O
      },
      getState: function() {
        return x.isLoaded() ? w.fp_getState() : -1
      },
      play: function(J, I) {
        var K = function() {
          if (J !== undefined) {
            x._api().fp_play(J, I)
          } else {
            x._api().fp_play()
          }
        };

        if (x.isLoaded()) {
          K()
        } else {
          if (E) {
            setTimeout(function() {
              x.play(J, I)
            }, 50)
          } else {
            x.load(function() {
              K()
            })
          }
        }
        return x
      },
      getVersion: function() {
        var J = "flowplayer.js 3.2.12";
        if (x.isLoaded()) {
          var I = w.fp_getVersion();
          I.push(J);
          return I
        }
        return J
      },
      _api: function() {
        if (!x.isLoaded()) {
          throw"Flowplayer " + x.id() + " not loaded when calling an API method"
        }
        return w
      },
      setClip: function(I) {
        n(I, function(J, K) {
          if (typeof K == "function") {
            k(y, J, K);
            delete I[J]
          } else {
            if (J == "onCuepoint") {
              $f(r).getCommonClip().onCuepoint(I[J][0], I[J][1])
            }
          }
        });
        x.setPlaylist([I]);
        return x
      },
      getIndex: function() {
        return q
      },
      bufferAnimate: function(I) {
        w.fp_bufferAnimate(I === undefined || I);
        return x
      },
      _swfHeight: function() {
        return w.clientHeight
      }
    });
    n(("Click*,Load*,Unload*,Keypress*,Volume*,Mute*,Unmute*,PlaylistReplace,ClipAdd,Fullscreen*,FullscreenExit,Error,MouseOver,MouseOut").split(","), function() {
      var I = "on" + this;
      if (I.indexOf("*") != -1) {
        I = I.slice(0, I.length - 1);
        var J = "onBefore" + I.slice(2);
        x[J] = function(K) {
          k(y, J, K);
          return x
        }
      }
      x[I] = function(K) {
        k(y, I, K);
        return x
      }
    });
    n(("pause,resume,mute,unmute,stop,toggle,seek,getStatus,getVolume,setVolume,getTime,isPaused,isPlaying,startBuffering,stopBuffering,isFullscreen,toggleFullscreen,reset,close,setPlaylist,addClip,playFeed,setKeyboardShortcutsEnabled,isKeyboardShortcutsEnabled").split(","), function() {
      var I = this;
      x[I] = function(K, J) {
        if (!x.isLoaded()) {
          return x
        }
        var L = null;
        if (K !== undefined && J !== undefined) {
          L = w["fp_" + I](K, J)
        } else {
          L = (K === undefined) ? w["fp_" + I]() : w["fp_" + I](K)
        }
        return L === "undefined" || L === undefined ? x : L
      }
    });
    x._fireEvent = function(R) {
      if (typeof R == "string") {
        R = [R]
      }
      var S = R[0], P = R[1], N = R[2], M = R[3], L = 0;
      if (u.debug) {
        h(R)
      }
      if (!x.isLoaded() && S == "onLoad" && P == "player") {
        w = w || c(s);
        p = x._swfHeight();
        n(G, function() {
          this._fireEvent("onLoad")
        });
        n(z, function(T, U) {
          U._fireEvent("onUpdate")
        });
        t._fireEvent("onLoad")
      }
      if (S == "onLoad" && P != "player") {
        return
      }
      if (S == "onError") {
        if (typeof P == "string" || (typeof P == "number" && typeof N == "number")) {
          P = N;
          N = M
        }
      }
      if (S == "onContextMenu") {
        n(u.contextMenu[P], function(T, U) {
          U.call(x)
        });
        return
      }
      if (S == "onPluginEvent" || S == "onBeforePluginEvent") {
        var I = P.name || P;
        var J = z[I];
        if (J) {
          J._fireEvent("onUpdate", P);
          return J._fireEvent(N, R.slice(3))
        }
        return
      }
      if (S == "onPlaylistReplace") {
        G = [];
        var O = 0;
        n(P, function() {
          G.push(new i(this, O++, x))
        })
      }
      if (S == "onClipAdd") {
        if (P.isInStream) {
          return
        }
        P = new i(P, N, x);
        G.splice(N, 0, P);
        for (L = N + 1; L < G.length; L++) {
          G[L].index++
        }
      }
      var Q = true;
      if (typeof P == "number" && P < G.length) {
        D = P;
        var K = G[P];
        if (K) {
          Q = K._fireEvent(S, N, M)
        }
        if (!K || Q !== false) {
          Q = t._fireEvent(S, N, M, K)
        }
      }
      n(y[S], function() {
        Q = this.call(x, P, N);
        if (this.cached) {
          y[S].splice(L, 1)
        }
        if (Q === false) {
          return false
        }
        L++
      });
      return Q
    };

    function C() {
      if ($f(r)) {
        $f(r).getParent().innerHTML = "";
        q = $f(r).getIndex();
        a[q] = x
      } else {
        a.push(x);
        q = a.length - 1
      }
      B = parseInt(r.style.height, 10) || r.clientHeight;
      F = r.id || "fp" + f();
      s = H.id || F + "_api";
      H.id = s;
      v = r.innerHTML;
      if (typeof u == "string") {
        u = {
          clip: {
            url: u
          }
        }
      }
      u.playerId = F;
      u.clip = u.clip || {};

      if (r.getAttribute("href", 2) && !u.clip.url) {
        u.clip.url = r.getAttribute("href", 2)
      }
      if (u.clip.url) {
        u.clip.url = e(u.clip.url)
      }
      t = new i(u.clip, -1, x);
      u.playlist = u.playlist || [u.clip];
      var J = 0;
      n(u.playlist, function() {
        var M = this;
        if (typeof M == "object" && M.length) {
          M = {
            url: "" + M
          }
        }
        if (M.url) {
          M.url = e(M.url)
        }
        n(u.clip, function(N, O) {
          if (O !== undefined && M[N] === undefined && typeof O != "function") {
            M[N] = O
          }
        });
        u.playlist[J] = M;
        M = new i(M, J, x);
        G.push(M);
        J++
      });
      n(u, function(M, N) {
        if (typeof N == "function") {
          if (t[M]) {
            t[M](N)
          } else {
            k(y, M, N)
          }
          delete u[M]
        }
      });
      n(u.plugins, function(M, N) {
        if (N) {
          z[M] = new m(M, N, x)
        }
      });
      if (!u.plugins || u.plugins.controls === undefined) {
        z.controls = new m("controls", null, x)
      }
      z.canvas = new m("canvas", null, x);
      v = r.innerHTML;
      function L(M) {
        if (/iPad|iPhone|iPod/i.test(navigator.userAgent) && !/.flv$/i.test(G[0].url) && !K()) {
          return true
        }
        if (!x.isLoaded() && x._fireEvent("onBeforeClick") !== false) {
          x.load()
        }
        return g(M)
      }
      function K() {
        return x.hasiPadSupport && x.hasiPadSupport()
      }
      function I() {
        if (v.replace(/\s/g, "") !== "") {
          if (r.addEventListener) {
            r.addEventListener("click", L, false)
          } else {
            if (r.attachEvent) {
              r.attachEvent("onclick", L)
            }
          }
        } else {
          if (r.addEventListener && !K()) {
            r.addEventListener("click", g, false)
          }
          x.load()
        }
      }
      setTimeout(I, 0)
    }
    if (typeof r == "string") {
      var A = c(r);
      if (!A) {
        throw"Flowplayer cannot access element: " + r
      }
      r = A;
      C()
    } else {
      C()
    }
  }
  var a = [];
  function d(p) {
    this.length = p.length;
    this.each = function(r) {
      n(p, r)
    };

    this.size = function() {
      return p.length
    };

    var q = this;
    for (name in b.prototype) {
      q[name] = function() {
        var r = arguments;
        q.each(function() {
          this[name].apply(this, r)
        })
      }
    }
  }
  window.flowplayer = window.$f = function() {
    var q = null;
    var p = arguments[0];
    if (!arguments.length) {
      n(a, function() {
        if (this.isLoaded()) {
          q = this;
          return false
        }
      });
      return q || a[0]
    }
    if (arguments.length == 1) {
      if (typeof p == "number") {
        return a[p]
      } else {
        if (p == "*") {
          return new d(a)
        }
        n(a, function() {
          if (this.id() == p.id || this.id() == p || this.getParent() == p) {
            q = this;
            return false
          }
        });
        return q
      }
    }
    if (arguments.length > 1) {
      var u = arguments[1], r = (arguments.length == 3) ? arguments[2] : {};

      if (typeof u == "string") {
        u = {
          src: u
        }
      }
      u = j({
        bgcolor: "#000000",
        version: [10, 1],
        expressInstall: "http://releases.flowplayer.org/swf/expressinstall.swf",
        cachebusting: false
      }, u);
      if (typeof p == "string") {
        if (p.indexOf(".") != -1) {
          var t = [];
          n(o(p), function() {
            t.push(new b(this, l(u), l(r)))
          });
          return new d(t)
        } else {
          var s = c(p);
          return new b(s !== null ? s : l(p), l(u), l(r))
        }
      } else {
        if (p) {
          return new b(p, l(u), l(r))
        }
      }
    }
    return null
  };

  j(window.$f, {
    fireEvent: function() {
      var q = [].slice.call(arguments);
      var r = $f(q[0]);
      return r ? r._fireEvent(q.slice(1)) : null
    },
    addPlugin: function(p, q) {
      b.prototype[p] = q;
      return $f
    },
    each: n,
    extend: j
  });
  if (typeof jQuery == "function") {
    jQuery.fn.flowplayer = function(r, q) {
      if (!arguments.length || typeof arguments[0] == "number") {
        var p = [];
        this.each(function() {
          var s = $f(this);
          if (s) {
            p.push(s)
          }
        });
        return arguments.length ? p[arguments[0]] : new d(p)
      }
      return this.each(function() {
        $f(this, l(r), q ? l(q) : {})
      })
    }
  }
}();
!function() {
  var h = document.all, j = "http://get.adobe.com/flashplayer", c = typeof jQuery == "function", e = /(\d+)[^\d]+(\d+)[^\d]*(\d*)/, b = {
    width: "100%",
    height: "100%",
    id: "_" + ("" + Math.random()).slice(9),
    allowfullscreen: true,
    allowscriptaccess: "always",
    quality: "high",
    version: [3, 0],
    onFail: null,
    expressInstall: null,
    w3c: false,
    cachebusting: false
  };

  if (window.attachEvent) {
    window.attachEvent("onbeforeunload", function() {
      __flash_unloadHandler = function() {
      };

      __flash_savedUnloadHandler = function() {
      }
    })
  }
  function i(m, l) {
    if (l) {
      for (var f in l) {
        if (l.hasOwnProperty(f)) {
          m[f] = l[f]
        }
      }
    }
    return m
  }
  function a(f, n) {
    var m = [];
    for (var l in f) {
      if (f.hasOwnProperty(l)) {
        m[l] = n(f[l])
      }
    }
    return m
  }
  window.flashembed = function(f, m, l) {
    if (typeof f == "string") {
      f = document.getElementById(f.replace("#", ""))
    }
    if (!f) {
      return
    }
    if (typeof m == "string") {
      m = {
        src: m
      }
    }
    return new d(f, i(i({}, b), m), l)
  };

  var g = i(window.flashembed, {
    conf: b,
    getVersion: function() {
      var m, f;
      try {
        f = navigator.plugins["Shockwave Flash"].description.slice(16)
      } catch (o) {
        try {
          m = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");
          f = m && m.GetVariable("$version")
        } catch (n) {
          try {
            m = new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");
            f = m && m.GetVariable("$version")
          } catch (l) {
          }
        }
      }
      f = e.exec(f);
      return f ? [1 * f[1], 1 * f[(f[1] * 1 > 9 ? 2 : 3)] * 1] : [0, 0]
    },
    asString: function(l) {
      if (l === null || l === undefined) {
        return null
      }
      var f = typeof l;
      if (f == "object" && l.push) {
        f = "array"
      }
      switch (f) {
        case"string":
          l = l.replace(new RegExp('(["\\\\])', "g"), "\\$1");
          l = l.replace(/^\s?(\d+\.?\d*)%/, "$1pct");
          return'"' + l + '"';
        case"array":
          return"[" + a(l, function(o) {
            return g.asString(o)
          }).join(",") + "]";
        case"function":
          return'"function()"';
        case"object":
          var m = [];
          for (var n in l) {
            if (l.hasOwnProperty(n)) {
              m.push('"' + n + '":' + g.asString(l[n]))
            }
          }
          return"{" + m.join(",") + "}"
      }
      return String(l).replace(/\s/g, " ").replace(/\'/g, '"')
    },
    getHTML: function(o, l) {
      o = i({}, o);
      var n = '<object width="' + o.width + '" height="' + o.height + '" id="' + o.id + '" name="' + o.id + '"';
      if (o.cachebusting) {
        o.src += ((o.src.indexOf("?") != -1 ? "&" : "?") + Math.random())
      }
      if (o.w3c || !h) {
        n += ' data="' + o.src + '" type="application/x-shockwave-flash"'
      } else {
        n += ' classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"'
      }
      n += ">";
      if (o.w3c || h) {
        n += '<param name="movie" value="' + o.src + '" />'
      }
      o.width = o.height = o.id = o.w3c = o.src = null;
      o.onFail = o.version = o.expressInstall = null;
      for (var m in o) {
        if (o[m]) {
          n += '<param name="' + m + '" value="' + o[m] + '" />'
        }
      }
      var p = "";
      if (l) {
        for (var f in l) {
          if (l[f]) {
            var q = l[f];
            p += f + "=" + (/function|object/.test(typeof q) ? g.asString(q) : q) + "&"
          }
        }
        p = p.slice(0, -1);
        n += '<param name="flashvars" value=\'' + p + "' />"
      }
      n += "</object>";
      return n
    },
    isSupported: function(f) {
      return k[0] > f[0] || k[0] == f[0] && k[1] >= f[1]
    }
  });
  var k = g.getVersion();
  function d(f, n, m) {
    if (g.isSupported(n.version)) {
      f.innerHTML = g.getHTML(n, m)
    } else {
      if (n.expressInstall && g.isSupported([6, 65])) {
        f.innerHTML = g.getHTML(i(n, {
          src: n.expressInstall
        }), {
          MMredirectURL: encodeURIComponent(location.href),
          MMplayerType: "PlugIn",
          MMdoctitle: document.title
        })
      } else {
        if (!f.innerHTML.replace(/\s/g, "")) {
          f.innerHTML = "<h2>Flash version " + n.version + " or greater is required</h2><h3>" + (k[0] > 0 ? "Your version is " + k : "You have no flash plugin installed") + "</h3>" + (f.tagName == "A" ? "<p>Click here to download latest version</p>" : "<p>Download latest version from <a href='" + j + "'>here</a></p>");
          if (f.tagName == "A" || f.tagName == "DIV") {
            f.onclick = function() {
              location.href = j
            }
          }
        }
        if (n.onFail) {
          var l = n.onFail.call(this);
          if (typeof l == "string") {
            f.innerHTML = l
          }
        }
      }
    }
    if (h) {
      window[n.id] = document.getElementById(n.id)
    }
    i(this, {
      getRoot: function() {
        return f
      },
      getOptions: function() {
        return n
      },
      getConf: function() {
        return m
      },
      getApi: function() {
        return f.firstChild
      }
    })
  }
  if (c) {
    jQuery.tools = jQuery.tools || {
      version: "3.2.12"
    };

    jQuery.tools.flashembed = {
      conf: b
    };

    jQuery.fn.flashembed = function(l, f) {
      return this.each(function() {
        $(this).data("flashembed", flashembed(this, l, f))
      })
    }
  }
}();